﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using RTSoft.SoureCode.Control.KhachHang;
using RTSoft.Modules;

namespace RTSoft.SoureCode.Entity
{
    public partial class frmKhachHang : DevExpress.XtraEditors.XtraForm
    {
        DataTable tbl;
        String errConnect;
        String errSQL;

        public frmKhachHang()
        {
            InitializeComponent();
        }
        
        private void frmKhachHang_Load(object sender, EventArgs e)
        {
            try
            {
                this.InitGrid();
            }
            catch
            {
                Library.ShowMessage("Lỗi dữ liệu đầu vào!");
            }
            this.GridView1.BestFitColumns();
        }

        #region "InitGrid"
            public void InitGrid(){
	        tbl = new DataTable();
            errConnect = "";
	        errSQL = "";
	        khachhangctrl ctrl = new khachhangctrl();
            ctrl.getData(ref errConnect, ref errSQL, ref tbl);
	        GridControl1.DataSource = tbl;
            GridView1.Columns["ID_KH"].Caption = "ID";
            GridView1.Columns["TEN_KH"].Caption = " Tên khách hàng";
            GridView1.Columns["SDT_KH"].Caption = "Số điện thoại";
            GridView1.Columns["CMND_KH"].Caption = "Số CMND";
            GridView1.Columns["DIEM"].Caption = "Điểm";	        
	        GridView1.Columns["ID_KH"].Visible = false;
            GridView1.Columns["DIEM"].DisplayFormat.FormatType = DevExpress.Utils.FormatType.Numeric;
            GridView1.Columns["DIEM"].DisplayFormat.FormatString = "###,###,###";
        }
        #endregion

        #region "Event Button"
            private void btnExcel_Click(object sender, EventArgs e)
            {
                frmKhachHang frm = new frmKhachHang();
                Library.ExportToExcel(frm, "Danh Sách Khách Hàng", GridView1);
            }

            private void btnDelete_Click(object sender, EventArgs e)
            {
                if (GridView1.FocusedRowHandle >= 0)
                {
                    int id = Convert.ToInt32(GridView1.GetRowCellValue(GridView1.FocusedRowHandle, GridView1.Columns["ID_KH"].FieldName));
                    errConnect = "";
                    errSQL = "";
                    string strName = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, GridView1.Columns["TEN_KH"].FieldName).ToString();
                    Boolean result = Library.ShowQuestionMessage("Bạn có chắc chắn xóa " + strName + " ?");
                    if (result == false)
                    {
                        return;
                    }
                    khachhangctrl ctrl = new khachhangctrl();
                    ctrl.Delete(ref errConnect, ref errSQL, id);
                    if (errSQL != "")
                    {
                        Library.ShowMessage("Không thể xóa khách hàng này!");
                    }
                    else
                    {
                        GridView1.DeleteSelectedRows();
                        GridView1.RefreshData();
                    }
                }
            }

            private void btnClose_Click(object sender, EventArgs e)
            {
                this.Close();
            }

            private void GridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
            {
                khachhangctrl ctrl = new khachhangctrl();
                khachhanginfo info = new khachhanginfo();

                errConnect = "";
                errSQL = "";
                DataRow row = GridView1.GetDataRow(e.RowHandle);
                info.ID_KH = Convert.ToInt32(RTValidate.CheckNull(row["ID_KH"]));
                info.TEN_KH = RTValidate.CheckNull(row["TEN_KH"]).ToString();
                info.SDT_KH = RTValidate.CheckNull(row["SDT_KH"]).ToString();
                info.CMND_KH = Convert.ToInt32(RTValidate.CheckNull(row["CMND_KH"]));
                info.DIEM = Convert.ToInt32(RTValidate.CheckNull(row["DIEM"]));
                if (info.ID_KH != 0)
                {
                    Boolean result = Library.ShowQuestionMessage("Dữ liệu có sự thay đổi bạn có chắc sửa");
                    if (result != false)
                    {
                        ctrl.Update(ref errConnect, ref errSQL, info);
                    }
                }
                else
                {
                    ctrl.Insert(ref errConnect, ref errSQL, info);
                }
                this.InitGrid();   
            }

            // Print phiếu tích điểm
            private void simpleButton1_Click(object sender, EventArgs e)
            {
                int id = Convert.ToInt32(GridView1.GetFocusedRowCellValue("ID_KH"));
                rptPhieuTichDiem report = new rptPhieuTichDiem();
                frmShowReport dlg = new frmShowReport();
                DataTable dt = new DataTable();
                errConnect = "";
                errSQL = "";
                khachhangctrl ctrl = new khachhangctrl();
                ctrl.getDataByID(ref errConnect, ref errSQL, ref dt,id);
                report.DataSource = dt;
                report.cellName.DataBindings.Add("Text", dt, "TEN_KH");
                report.cellPhone.DataBindings.Add("Text", dt, "SDT_KH");
                report.cellCMND.DataBindings.Add("Text", dt, "CMND_KH");
                report.cellPoint.DataBindings.Add("Text", dt, "DIEM");
                report.cellDateP.Text = "Cần Thơ, Ngày " + DateTime.Now.Day + " tháng " + DateTime.Now.Month + " năm " + DateTime.Now.Year;
                report.cellUser.Text = RTValidate.RTUser;
                dlg.printControl1.PrintingSystem = report.PrintingSystem;
                report.CreateDocument();
                dlg.Name = "In phiếu tích điểm";
                dlg.Show();               
                              
            }
            //Đổi điểm 
            private void btnChangePoint_Click(object sender, EventArgs e)
            {
                int point = Convert.ToInt32(GridView1.GetFocusedRowCellValue("DIEM"));
                if (point / 500 < 1) {
                    Library.ShowMessage("khách hàng này không đủ điều kiện để đổi tiền!");
                    return;
                }
                else
                {
                    Boolean rs = Library.ShowQuestionMessage("Bạn chắc muốn đổi " + ((point / 500)*500).ToString("###,###,###") + " điểm thành " + ((point / 500) * 100000).ToString("###,###,###") + " VNĐ?");
                    if (rs == true)
                    {
                        khachhangctrl ctrl = new khachhangctrl();
                        khachhanginfo info = new khachhanginfo();
                        info.ID_KH = Convert.ToInt32(GridView1.GetFocusedRowCellValue("ID_KH"));
                        info.TEN_KH = GridView1.GetFocusedRowCellValue("TEN_KH").ToString();
                        info.DIEM = point - ((point / 500) * 500);
                        errConnect = "";
                        errSQL = "";
                        ctrl.UpdatePoint(ref errConnect, ref errSQL, info);
                        Library.ShowMessage(info.TEN_KH +" vừa đổi " + ((point / 500) * 500).ToString("###,###,###") + " điểm thành " + ((point / 500) * 100000).ToString("###,###,###") + " VNĐ thành công!");
                        this.InitGrid();
                    }
                }
            }
        #endregion

            private void btnTop_Click(object sender, EventArgs e)
            {
                tbl = new DataTable();
                errConnect = "";
                errSQL = "";
                khachhangctrl ctrl = new khachhangctrl();
                ctrl.getTop10(ref errConnect, ref errSQL, ref tbl);
                GridControl1.DataSource = tbl;
            }

          

    }
}
